A well known principle for data exchange in networks is that of data unit exchange. This means that data to be sent is broken down into individual units. Rules for sending and receiving such units, as well as rules for the structure of the units themselves, are determined by so-called protocols. Protocols are sets of rules that allow the communication between a sending end and a receiving end, as the rules specify how and in what form data to be sent has to be prepared such that the receiving end may interpret the data and react in accordance to protocol defined rules to which both partners in the communication adhere. The two ends of a communication adhering to a specific protocol are also referred to as peers.
Such data units are sometimes referred to by different names, depending on the type of protocol involved, such as packets, frames, segments, datagrams, etc. For the purpose of clarity the present description uses the term “data unit” generically for any type of data unit associated with any type of protocol.
An important concept in communications using data unit exchange is that of protocol layering. This means that a number of protocols (sometimes also referred to as a suite) is organized in a hierarchy of layers, where each layer has specific functions and responsibilities. The concept of layering is well known in the art and described in many textbooks, for example “TCP-IP illustrated, volume 1, The Protocols” by W. Richard Stevens, Addison Wesley, 1994, such that a detailed description is not necessary here.
The TCP/IP protocol suite is an example of a layered protocol hierarchy. A basic structure of a protocol hierarchy is defined by the OSI (Open System Interconnection) layer model. At a lowest layer, which is also referred to as the physical layer or L1, the functions of directly transporting data over a physical connection are handled. Above the physical layer, a second layer L2, which is also referred as to the link layer is provided. The link layer L2 fulfils the function of handling the transport of data units over links between communication nodes. Above the link layer L2 a third layer L3 is provided, which is also referred to as the network layer. The network layer handles the routing of data units in a given network. An example of a network layer protocol is the internet protocol (IP). Above the network layer, a fourth layer L4 is provided, which is also referred to as the transport layer. Examples of a transport layer protocol are the transmission control protocol (TCP) or the user datagram protocol (UDP).
In a data unit based communication system using a hierarchy of protocol layers, a communication comprises passing a given data unit downwards through the protocol hierarchy on the sending side, and passing a data unit upwards through the protocol hierarchy on the receiving side. When a data unit is passed downwards, each protocol will typically, perform a certain function with respect thereto, e.g. add further information and change or adapt the structure to specific rules of that protocol layer. Typically each protocol layer will add its own header to a data unit received from a higher protocol layer and may also add delimiters. When a specific protocol layer receives a data unit from a higher protocol layer, it will embed the higher layer data unit into a data unit adhering to the rules of the given protocol layer. The term“embedding” shall refer to both encapsulation in which one data unit of a higher layer is placed into one data unit of a given layer, and to segmentation, where one data unit of a higher layer is segmented into a plurality of data units of the given protocol layer.
An important aspect of the layering scheme is that the different layers are “transparent”. This means that the peers in a layer are oblivious to what happens in another layer.
Typically, each protocol layer will perform some type of transmission control for its data units. Such transmission control can e.g. comprise the performing of a certain type of forward error correction, the setting of parameters associated with an automatic repeat request (ARQ) function, the scheduling of data units, or the performing of comparable operations.
It is known to implement protocol layers in such a way that they can be operated in a specific mode with respect to the transmission control. As an example, a so-called numbered mode (or I-mode) and a so-called unnumbered mode (UI-mode) are known. In the numbered mode, if it is determined that a sent data unit was not correctly received by the receiving peer, then the sending peer performs retransmission of said data unit. In this way it can be assured that all packets are correctly transmitted, although this may increase the delay, depending on how many packets have to be transmitted. On the other hand, in the unnumbered mode, no retransmissions are provided. This has the advantage of less delay, but the transmission reliability depends on the quality of the physical connection.
The possibility of setting a given protocol layer implementation into a specific transmission control mode has the advantage that the selection of the mode can e.g. be performed by a control procedure from a higher protocol layer, in order to optimize the sending of data units from said higher protocol layer. However, it does not provide very much flexibility, as a given protocol layer will typically handle a variety of different types of data units, that require different control settings with respect to the optimization of the sending of the given type of data unit. As an example, if an application layer is sending a computer file, it desires to ensure a reliable transmission, and may therefore want to set a lower layer protocol implementation into the numbered mode, or the application layer may want to send data that requires real-time transmission, such as a video stream belonging to a video telephone, in which case transmission speed is more important than reliability, such that the application layer may want to set a lower layer protocol implementation into the unnumbered mode. However, if both computer file data and video data are being sent, then the setting of the lower layer protocol implementation into a given transmission control mode will not provide an optimum solution.
EP-0 973 302 A1 addresses this problem and proposes a system, in which a given protocol layer that receives higher data unit layers and embeds these higher data layers into data units of said given layer, is arranged to discriminate the higher layer data unit layers by reading the header information and determining the type of the higher layer data unit. Then, a classification is performed in accordance with the identified type. In this, way, the given protocol layer can flexibly set the transmission reliability of its data units depending on the type of the higher layer data unit that is embedded in its own data units. As an example, if the system of EP-0 973 02 A1 is applied to a link layer in the TCP/IP suite, then the link layer can identify if the network layer IP data unit that it receives carries a TCP data unit, in which case the link layer data units are sent in the numbered mode, or if the network layer IP data unit carries UDP data unit, in which case the link layer data units are sent in the unnumbered mode.
However, the system of EP-0 973 302 A1 is not always practical, as it requires the parsing of higher layer data units in order to identify type information, which e.g. does not work when the higher layer data unit has an encrypted header and/or payload.
EP-0 959 589 A2 describes a system and method for link layer and MAC layer transaction completion procedures. It discusses the problem of having to maintain a protocol state over long periods of inactivity when using the radio link protocol (RLP) or the mobile data link protocol (MDLP). It is indicated as desirable to find a procedure for efficiently ending transactions. The idea of indicating the end of a temporary block flow in each radio link control (RLC) block, as suggested by GPRS is viewed as wasteful. In order to solve this problem, the document suggests a procedure, where the begin of a transaction is marked by a BEGIN PDU, where said PDU may contain a transaction size indicator that identifies the number of data blocks in the transaction.
WO 99/27464 and the paper “Performance Analysis of Data Packet Discarding in ATM Networks” by Kim et al. indicate that the sending of TCP packets over ATM networks leads to specific problems if individual ATM cells are dropped at congested ATM switches, because the loss of a single cell carrying a part of a packet will corrupt the entire packet. The concepts of PPD (partial packet discard) and EPD (early packet discard) as mechanisms that avoid these problems are described. In PPD, whenever a cell has been discarded by a switch due to congestion, the subsequent cells belonging to the same packet (except the last cell) are intentionally discarded. The intention is to conserve bandwidths and buffer space. EPD is designed to prevent unnecessary buffering of cells. This is done by setting a buffer threshold and testing the threshold to determine whether or not there is room in the buffer for the entire packet before buffering any cells. If the threshold is exceeded, all of the cells in the packet are dropped (except the last cell).
It is desirable to provide an improved method and system of processing data units of a higher protocol layer at a given protocol layer, which is simple to implement, but flexibly provides improved transmission properties.